In a cloud computing environment, computing is delivered as a service rather than a product, whereby shared resources, software and information are provided to computers and other devices as a metered service over a network, such as the Internet. In such an environment, computation, software, data access and storage services are provided to users that do not require knowledge of the physical location and configuration of the system that delivers the services.
In a virtualized computer environment, such as may be implemented in a physical cloud computing node of the cloud computing environment, the virtualized computer environment includes a virtual operating system. The virtual operating system includes a common base portion and separate user portions that all run on a physical computer. The physical computer is referred to as a host. The common base portion may be referred to as a hypervisor and each user portion may be called a guest. Each guest is a logical partition of the physical resources of the computer. A guest operating system runs on each guest, and the guest appears to the guest operating system as a real computer. Each guest operating system may host one or more virtual machines.
Currently, functions of the cloud computing environment are performed at least in part by hardware components, such as blade servers, which may run different hypervisor platforms (e.g., PowerVM®, VMware® ESX, Open KVM). Each of these hypervisor platforms may exhibit strengths or weaknesses in comparison to the other hypervisor platforms. For example, one hypervisor platform may provide an effective input/output rate while having lower memory density in comparison to other hypervisor platforms. In another example, one hypervisor platform may provide the lowest overhead in Central Processing Unit (CPU) virtualization while having low disk performance in comparison to other hypervisor platforms. Similarly, application workloads (referring to the amount of processing that a hardware component has been given to do at a given time) that are provisioned on the cloud computing environment have different needs or requirements. For example, one application workload may be dependent on CPU computing efficiency while another application workload may be dependent on network latency.
Unfortunately, there is not currently a means for selecting the hypervisor platforms that are best suited for satisfying the application workload requirements. As a result, the application workloads may not be effectively processed.